home *** CD-ROM | disk | FTP | other *** search
-
-
- CLIPPER
-
- CALENDARIOS
-
- La siguiente funci≤n muestra en pantalla el calendario del mes actual.
- Si pulsamos las teclas ½flecha arriba╗ y ½flecha abajo╗, retrocedemos
- o avanzamos un mes. Si pulsamos las teclas ½pag_up╗ y ½pag_down╗
- retrocedemos o avanzamos un a±o respectivamente. Para salir del
- calendario, hay que pulsar la tecla ½escape╗.
-
- Su funcionamiento es muy sencillo: basta con llamarlo desde nuestro
- programa mediante ½calendar()╗. Ademßs, permite que se le pasen
- cuatro parßmetros, tal y como se describen en el listado de la
- funci≤n. Estos son las coordenadas de la esquina superior de la caja
- (fila y columna), el color del tφtulo (cColorDia) y el color de los
- n·meros (cColorFecha). Si se llama a la funci≤n sin parßmetros, se
- cogen los asignados por defecto.
-
- Para que la rutina funcione correctamente el formato de fecha debe ser
- del tipo dd/mm/aa. En este caso se ha elegido lo que se conoce como
- formato italiano.
-
- function calendar(fila,columna,cColorDia,cColorFecha)
-
- set date italian
-
- if fila==NIL
-
- fila:=5
-
- endif
-
- if columna==NIL
-
- columna:=10
-
- endif
-
- if cColorDia==NIL
-
- cColorDia:="w+/b"
-
- endif
-
- if cColorFecha==NIL
-
- cColorFecha:="gr+/b"
-
- endif
-
-
- dFecha1=date()
-
- do while lastkey()!=27
-
- nFila:=fila
-
- nCol:=columna
-
- setcolor(cColorFecha)
-
- @nFila-4,nCol,nFila+6,nCol+25 BOX "+-+ª+-+ª "
-
- cTitulo := cMonth(dFecha1)+str(year(dFecha1))
-
- nLongitud := int(len(cTitulo)/2)
-
- @nFila-3,nCol+13-nLongitud say cTitulo
-
- @nFila-2,nCol+1 to nFila-2,nCol+24
-
- setcolor(cColorDia)
-
- @nFila-1,nCol+3 say " D L M X J V S"
-
- setcolor(cColorFecha)
-
- for t=1 to 31
-
- fecha=str(t)+"/"+str(month(dFecha1))+"/"+str(year(dFecha1))
-
- fecha=ctod(fecha)
-
- if dow(fecha)!=0
-
- @nFila,nCol+((dow(fecha))*3) say t picture "99"
-
- endif
-
- if dow(fecha)=7
-
- nFila++
-
- endif
-
- next
-
- inkey(0)
-
- if lastkey()=5 .and. month(dFecha1)>1
-
- dFecha1=ctod(str(day(dFecha1))+"/"+str(month(dFecha1)-1)+"/"+str(year
- (dFecha1)))
-
- elseif lastkey()=24 .and. month(dFecha1)<12
-
- dFecha1=ctod(str(day(dFecha1))+"/"+str(month(dFecha1)+1)+"/"+str(year
- (dFecha1)))
-
- elseif lastkey()=18
-
- dFecha1=ctod(str(day(dFecha1))+"/"+str(month(dFecha1))+"/"+str(year
- (dFecha1)-1))
-
- elseif lastkey()=3
-
- dFecha1=ctod(str(day(dFecha1))+"/"+str(month(dFecha1))+"/"+str(year
- (dFecha1)+1))
-
- endif
-
- enddo
-
- Fernando A. Casa Vßzquez
-
- Fuenlabrada (Madrid)
-
-
- TRES FUNCIONES
-
- Funci≤n para rellenar una parte de la pantalla de un color
-
- Esta simple funci≤n nos permite rellenar una zona de la pantalla de un
- color, mediante la introducci≤n de los parßmetros de las coordenadas y
- el tipo de color.
-
- Esta rutina s≤lo funciona en la versi≤n 5.2 de Clipper, aunque puede
- servir en versiones anteriores incluyendo tras la definici≤n de los
- parßmetros la orden ½SET COLOR TO /&COLORE╗ y borrando en la lφnea del
- REPLICATE el trozo que dice ½COLOR "/"+COLORES╗.
-
- PROCEDURE TROZO
-
- PARAMETERS F1, C1, F2, C2, COLORES
-
- CO2= (C2-C1)+1
-
- DO WHILE F1<=F2
-
- @ F1,C1 SAY REPLICATE(" ",CO2) COLOR "/"+COLORES
-
- F1=F1+1
-
- ENDDO
-
- RETURN
-
- Funci≤n para la mezcla de colores de fondo
-
- Esta peque±a funci≤n nos permite mezclar los caracteres ASCII 176, 177
- y 178 (que son prßcticamente iguales pero se diferencian en el
- espesor) con distintos colores y rellenar toda la pantalla. Asφ
- podremos conseguir infinidad de colores para el fondo de la pantalla.
-
- Los parßmetros que se han de especificar son los caracteres ASCII 176,
- 177 y 178, y los colores (NORMAL/FONDO). Esta funci≤n s≤lo funciona
- con la versi≤n 5.2 de Clipper; para que podamos usarla con versiones
- anteriores se ha de incluir despuΘs de la definici≤n de los parßmetros
- la instrucci≤n ½SET COLOR TO &COLORES╗ y se ha de borrar en la lφnea
- del REPLICATE el trozo que dice ½COLOR "/"+COLORES╗.
-
- PROCEDURE FONDO
-
- PARAMETERS CARACTER, COLORES
-
- F=0
-
- DO WHILE F<=24
-
- @ F,0 SAY REPLICATE (CARACTER,80) COLOR "/"+COLORES
-
- F=F+1
-
- ENDDO
-
- RETURN
-
- Funci≤n para crear la sombra de los recuadros
-
- En esta funci≤n basta con introducir como parßmetros las coordenadas
- que tiene el recuadro y automßticamente la funci≤n crea la sombra del
- mismo.
-
- S≤lo sirve para la versi≤n 5.2 de Clipper, pero podemos adaptarla a
- versiones anteriores si despuΘs de la definici≤n de los parßmetros
- incluimos la instrucci≤n ½SET COLOR TO /N╗ y en la lφnea del REPLICATE
- borramos el trozo que dice ½COLOR "/N"╗.
-
- PROCEDURE SOMBRA
-
- PARAMETERS F1, C1, F2, C2
-
- ABAJO=(C2-C1)+1
-
- LATERAL=(F2-F1)+1
-
- @ F2+1, C1+2 SAY REPLICATE(" ", ABAJO) COLOR "/N"
-
- FOR I = 1 TO LATERAL
-
- @ F1+1, C2+1 SAY " " COLOR "/N"
-
- F1=F1+1
-
- NEXT
-
- RETURN
-
- Alberto Ruiz Berm·dez
-
- Hospitalet (Barcelona)
-
-
-